From a773103476e1b620cab1b4c4ef87bf530390b14a Mon Sep 17 00:00:00 2001 From: Andy Chiang Date: Mon, 13 Oct 2025 12:48:03 +0700 Subject: [PATCH] luci-mod-status: fix luci-bwc segfault fixes: #8008 Signed-off-by: Andy Chiang --- modules/luci-mod-status/src/luci-bwc.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/luci-mod-status/src/luci-bwc.c b/modules/luci-mod-status/src/luci-bwc.c index 4eef2d38d1..086971dd0e 100644 --- a/modules/luci-mod-status/src/luci-bwc.c +++ b/modules/luci-mod-status/src/luci-bwc.c @@ -442,8 +442,8 @@ static int run_daemon(void) struct dirent *e; struct stat s; - char *ipc; - char *ipc_command; + char *ipc = NULL; + char *ipc_command = NULL; if(! stat("/proc/net/nf_conntrack", &s)) ipc = "/proc/net/nf_conntrack"; else if(! stat("/proc/net/ip_conntrack", &s)) @@ -541,8 +541,8 @@ static int run_daemon(void) closedir(dir); } - if (((ipc != '\0') && ((info = fopen(ipc, "r")) != NULL)) || - ((ipc_command != '\0') && ((info=popen(ipc_command, "r")) != NULL))) + if ((ipc && ((info = fopen(ipc, "r")) != NULL)) || + (ipc_command && ((info = popen(ipc_command, "r")) != NULL))) { udp = 0; tcp = 0; @@ -570,7 +570,10 @@ static int run_daemon(void) update_cnstat(udp, tcp, other); - fclose(info); + if (ipc) + fclose(info); + else + pclose(info); } if ((info = fopen("/proc/loadavg", "r")) != NULL) @@ -582,10 +585,7 @@ static int run_daemon(void) (uint16_t)(lf15 * 100)); } - if (ipc != '\0') - fclose(info); - if (ipc_command != '\0') - pclose(info); + fclose(info); } sleep(STEP_TIME); -- 2.30.2